package com.itheima.ydd.controller;


import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.itheima.ydd.common.R;
import com.itheima.ydd.common.ResultData;
import com.itheima.ydd.entity.YddTag;
import com.itheima.ydd.service.IYddTagService;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author author
 * @since 2022-05-22
 */
@RestController
@RequestMapping("/ydd_tag")
public class YddTagController {
    @Autowired
    private IYddTagService iYddTagService;
    //修改标签
    @PostMapping("update")
    public ResultData update(@RequestBody YddTag yddTag){
        iYddTagService.updateById(yddTag);
        return ResultData.ok("标签修改成功!","");
    }

    //添加标签
    @PostMapping("add")
    public ResultData add(@RequestBody YddTag yddTag){
        iYddTagService.save(yddTag);
        return ResultData.ok("添加成功!","");
    }
    //删除标签
    @GetMapping("del")
    public ResultData del(int id){
        iYddTagService.removeById(id);
        return ResultData.ok("删除成功!","");
    }


    //根据id查看 数据回显
    @GetMapping("rowInfo")
    public ResultData rowInfo(int id){
        YddTag yddTag = iYddTagService.getById(id);
        return ResultData.ok("查询成功!",yddTag);
    }

    //标签列表展示
    @GetMapping("list")
    public ResultData list(String tagname, int page, int limit){
        //构建分页
        Page<YddTag> yddTagPage=new Page<>(page,limit);
        //条件构造器
        LambdaQueryWrapper<YddTag> lqw=new LambdaQueryWrapper<>();
        lqw.like(StringUtils.isNotEmpty(tagname),YddTag::getTagname,tagname);
        iYddTagService.page(yddTagPage,lqw);

        Map<Object,Object> map=new HashMap<>();
        map.put("count",yddTagPage.getTotal());
        map.put("totalPages",yddTagPage.getPages());
        map.put("pageSize",yddTagPage.getSize());
        map.put("currentPage",yddTagPage.getCurrent());
        map.put("data",yddTagPage.getRecords());
        return ResultData.ok("查询成功!",map);
    }

    //获取全部标签
    @GetMapping("all")
    public ResultData all(){
        List<YddTag> tagList = iYddTagService.list();
        return ResultData.ok("查询成功",tagList);
    }

}
